/**
 * The number, 1406357289, is a 0 to 9 pandigital number 
 * because it is made up of each of the digits 0 to 9 in some order, 
 * but it also has a rather interesting sub-string divisibility property. 
 * Let d1 be the 1st digit, d2 be the 2nd digit, and so on. 
 * In this way, we note the following: 
 * d2d3d4=406 is divisible by 2
 * d3d4d5=063 is divisible by 3 
 * d4d5d6=635 is divisible by 5 
 * d5d6d7=357 is divisible by 7 
 * d6d7d8=572 is divisible by 11 
 * d7d8d9=728 is divisible by 13 
 * d8d9d10=289 is divisible by 17 
 * Find the sum of all 0 to 9 pandigital numbers with this property.
 */

/**
 * @author TrinhNX
 * @start_date	: 2015/05/21
 * @end_date 	:
 */
public class Euler043 {
	//	final static int[] PRIME_ARRAY = { 2, 3, 5, 7, 11, 13, 17 };
	final static int[] PRIME_ARRAY = { 2, 3, 5 };
	final static int[] NUMBER_ARRAY = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

	public static void main(String[] args) {
		printPermutation(0, PRIME_ARRAY);
	}

	// start from 4 -> 10 digits
	private static void printPermutation(int index, int[] data) {
		if (index == data.length - 1) {
			System.out.println("hit");
			Common.printArray(data, "\t");
			System.out.println();
		} else {
			for (int i = index; i < data.length - 1; i++) {
				Common.swap(data, index, i + 1);
				printPermutation(i + 1, data);
				Common.swap(data, index, i + 1);
			}
		}
	}

}
